﻿using Cmp.Web.Common;
using Cmp.Web.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Cmp.Web.IRepository
{
    /// <summary>
    /// 挂号数据接口
    /// </summary>
    public interface IRegisterProvide
    {
        /// <summary>
        /// 挂号预结算
        /// </summary>
        /// <param name="register"></param>
        /// <param name="exception"></param>
        /// <returns></returns>
        Task<string> RegisterPre(RegisterInfo register, out ExceptionAll exception);
        /// <summary>
        /// 挂号信息写入
        /// </summary>
        /// <param name="register"></param>
        /// <param name="exception"></param>
        /// <returns></returns>
        Task<bool> RegisterConfirm(RegisterInfo register, out ExceptionAll exception);
        /// <summary>
        /// 根据挂号时间获取挂号信息列表
        /// </summary>
        /// <param name="RegisterTime"></param>
        /// <param name="exception"></param>
        /// <returns></returns>
        Task<List<RegisterInfo>> GetRegisterInfoListByTime(string RegisterTime, out ExceptionAll exception);
        /// <summary>
        /// 根据患者Id时间获取患者挂号信息列表
        /// </summary>
        /// <param name="PatientId"></param>
        /// <param name="exception"></param>
        /// <returns></returns>
        Task<List<RegisterInfo>> GetRegisterInfoListByPatientId(string PatientId, string RegisterTime, out ExceptionAll exception);
        /// <summary>
        /// 根据挂号编号获取挂号信息
        /// </summary>
        /// <param name="RegisterNumber"></param>
        /// <param name="exception"></param>
        /// <returns></returns>
        Task<RegisterInfo> GetRegisterInfoByRegisterNumber(string RegisterNumber,out ExceptionAll exception);
    }
}
